package sudoku.client.comunicaciones;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;

import sudoku.client.presen.IVentanaJugador;

/**
 * @author Administrador
 */
@SuppressWarnings("serial")
public class Jugador extends UnicastRemoteObject implements IJugador {
	private String nombre;
	private IVentanaJugador ventanaJugador;

    protected Jugador(String nombre, IVentanaJugador ventana) throws MalformedURLException, RemoteException, AlreadyBoundException {
        super();
        this.nombre=nombre;
        int puertoLocal=3000;
        boolean conectado=false;
        while (!conectado) {
	        try {
	        	LocateRegistry.createRegistry(puertoLocal);
	        	conectado=true;
	        }
	        catch (Exception e) {
	        	puertoLocal=puertoLocal+1;
	        }
        }
        Naming.bind("rmi://127.0.0.1:" + puertoLocal + "/" + nombre, this);
        this.ventanaJugador=ventana;
    }

	public void actualizar(int id, String sudoku) throws RemoteException {
		this.ventanaJugador.actualizaSudoku(id, sudoku);
	}

	public IVentanaJugador getVentanaJugador() {
		return ventanaJugador;
	}
	
	public void setVentanaJugador(IVentanaJugador ventanaJugador) {
		this.ventanaJugador = ventanaJugador;
	}

	public String getNombre() throws RemoteException {
		return this.nombre;
	}
}
